[レポート]Googleをハッキングする - 社内レッドチームの運営と成長の教訓 - CODE BLUE 2024 #codeblue_jp
こんにちは、臼田です。
みなさん、セキュリティ対策してますか?(挨拶
今回はCODE BLUE 2024で行われた以下のセッションのレポートです。
Googleをハッキングする - 社内レッドチームの運営と成長の教訓
レッドチームは、成熟したセキュリティ組織にとってスパーリング・パートナーのような存在である。適切に活用すれば、インシデントの防止、守備側の対応時間の短縮、そして製品やシステム、さらには組織全体のセキュリティ態勢の向上に寄与する。現実の脅威インテリジェンスに基づいて実際の攻撃者をシミュレートすることにより、敵の視点から世界を見渡すユニークな機会を提供する。また、実際のインシデントが発生した際に迅速かつ決定的に対応すべきことを、冷静で安全な環境下で練習することができる。
レッドチームの構築・維持・成長には、非常に興味深い課題が伴う。最も関連性の高い脅威アクターを選んでシミュレートするという明白な課題から、インプラントやその他の繊細なツールを安全に管理するという微妙な課題、さらには高度な技術的知見を経営幹部やステークホルダーに効果的に伝える方法にいたるまで、さまざまな難題が存在する。
この講演では、これらの課題に焦点を当て、それがなぜ難しいのかを掘り下げ、Googleのチームのケーススタディや、世界中の内部レッドチームの構築を支援した多くのチームとの対話に基づいて、それらをどのように解決していくべきかについて考察する。
Speakers: Stefan Friedli
レポート
前説
- 誰でもプレゼントされるのは嬉しい
- ある日Googleのエンジニアに箱が届いた
- 封筒とプラズマボール、USB
- エンジニアが封筒を開けるとフレンドリーなメッセージ
- 入社して4年の記念日をお祝いしている
- Googleはいろんな販促グッズを作っていたがプラズマボールは作っていなかった
- なので違和感を覚えた
- Googleグラスを作っていたエンジニアが受け取った
- 確かに入社して4年ではあった
- 実はGoogleレッドチームが送ったものだった
- USBをつなぐとキーロガーが動いた
- レッドチームはGoogleボールのことをよく知っている
- 実際にこの活動を通じて機密情報を盗めるかを検証した
- 実際に盗むことができた
- 攻撃経路の構築のためのログなども把握できた
- レッドチームは何が起きるか見てみるだけでも価値があるのでは
- 幸い、あるいは不幸にもこれは事前に幕を閉じる
- エンジニアは不審に思ってセキュリティチームに通報した
- この対策の仕組みを実装してオープンソースにした
- この講演はレッドチームを構築したり利用する話
自己紹介
- セキュリティには長く関わっている
- 2001年からやっているが、セキュリティのチームはその前から存在していた
- しかし20%プロジェクトだった
- Gmailなども20%プロジェクトであった経緯がある
- ハックスタッフを増やした
- 2019年からレッドチーム
レッドチームとはなにか、やらないことはなにか
- セキュリティチームが目的を合意するのは難しい
- Googleのチームのミッションステートメント
- 攻撃者の立場で考え攻撃をすることで実際の攻撃者に対応できるようにする
- 新しい攻撃ベクトルを探すこともミッション
- アメリカ陸軍のレッドチームの定義もある
- 遥かに広い領域に対応する必要がある
- GoogleでもAndroidなど特定の分野に特化したレッドチームもある
- 敵の視点に立って考える
- 混同されたりするもの
- レッドチームは広範囲をカバーするものではない
- 特定の目的を達成するための少ない抵抗を超える
- ペネトレーションテストは脆弱性を見つけるが、レッドチームが脆弱性を見つけるのは手段であり目的ではない
- レッドチームは広範囲をカバーするものではない
- Googleには優秀なセキュリティのチームやバグバウンティプログラムもある
- 個人的にはレッドチームは探査と対応の両面でブルーチームのスパークリングパートナーになることが大事
- いつ攻撃があるかわからない
- ゼロデイも使われるし内部不正もあると考えて置かなければならない
- レッドチームはすべてを発見するというよりブルーチームのプレイブックを練習し何が見えていないのかを浮き彫りにする
- ブルーチームが素早く動けるように
- レッドチームは具体的なリスクを適切に説明できる必要がある
- コンテキストを提供できる
- 古いPHPがあり脅威がある場合、みんなは自分の資産にだけ興味がある
- 経営者は脆弱性に関心があるわけではない
- レッドチームは優位性がある
- 攻撃をつなげて実際の攻撃につなげる
- 優先順位は高くないかもしれない
- もう一つの側面がある
- レッドチームはコストがかかる
- いろいろあるが、演習は数ヶ月かかることも
- だんだん難易度が上がりコストも上がる
- 期待通りの結果が得られる保証はない
- 敵は進みやすい道を選ばない
- 広範な脆弱性調査をしたが、全く関係ないサードパーティのソフトウェアが悪用されたことがあった
- 大事なのは信頼
- レッドチームができるだけ現実的であることが大事
- ときには危険なことをやりたくなるかもしれない
- チームの評価が必要
- 安全に責任を持って取り組めるか確認する必要がある
レッドチームの影響力を上げるためには変化を説明する
- レッドチームは敵の役割をする
- ある敵がどのように目的に達成したかのストーリーを話す
- 初期の頃は技術的な経路だけドキュメントにしていた
- 物語のセクションを作ったら組織の改善が捗った
- ストーリーを語れば共有体験ができる
- 攻撃者の視点がわかりやすく伝わる、たとえ技術の知識がない人でも
- 魅力を高め、幅広いリソースを確保できた
- セッションの冒頭のプラズマボールの意味を思い出して
- この問題は新しいものではない
- テキストだけの文章と目に見えるプラズマボール
- どちらが響くでしょうか?
レッドチームを成功させるための方法
- ストーリーをどうやって伝えていくといいのか
- 誰をシミュレーションしているのか
- 国家的なハクティビストか
- 不満をもったユーザーか
- 企業スパイか
- モチベーションが大事
- 意思決定はモチベーションが重要
- 国家支援なら時間をかける
- リアルに考える必要がある
- ストーリーを語れる必要がある
- どこでつっかかったか。うまくいかなかったかを語る
- 実際の攻撃者が苦労しそうな部分がわかる
- レッドチームとしてうまくいかなかったとしても重要なポイントを共有できる
- 情報の受けてもイメージしやすくなる
コラボレーションの話
- たくさんのレッドチームと合ってきた
- あまりうまく行っていないチームもある
- なぜか
- お金を払ってもらって悪者のコスプレをしている珍しい仕事
- 仕事自体が隠れてやることになり、他のチームから敵対心を持たれてしまう
- 本当の敵のように
- 結果的に抵抗も上がり理解されない
- パートナーシップを重要にしたレッドチームが必要
- どんなふうに改善したらいいかを提供する
- 誰が悪いのかではなく進化と改善のための建設的な役割になる
- チームを強化する仕事をする
- 他のチームとも強力する
- 他の部署の人も適切に考えられるようになる
- よりレッドチームの仕事をしやすくなる
大切なこと
- 検知とレスポンスの協力が大事
- レッドチームとブルーチームの対立はよくあるが、アンチパターン
- 絶対に協力しなければならないチームはブルーチームである
- 本当の攻撃者による攻撃であった場合にもブルーチームが対応する
- 信頼をする
- セキュリティチャンピオンとの関係性を作る
- 頻繁ではなくてもいいけど何を考えているのか対話する
- レッドチームの代弁者になってくれる人
- 脅威インテリジェンスチームとも仲良くする
- 実際に脅威インテリジェンスをもっているなら共有する
- リアルな攻撃とあっているか対話できる
- 法律を忘れてはいけない
- コンプライアンスのリスクがある活動はあるが法務を味方につける
- そのためには行動規則が必要
- レッドチームとして自由度が欲しい
- どこが境界線なのかをリーダーたちに伝えて安心して貰う必要がある
- 絶対ここは超えないというラインが必要
- 絶対にユーザーのデータは触らない
- 自分たちのデータを使う
- 必ずライブの環境をテストする
- リスクを抑えるために何をするか明確にする
- 全部活動のログを取る
- 手間が掛かるが非常にフレキシブルに自由にできるようになる
どうやって有効なチームを作って維持するか
- レッドチームにはどういうスキルが必要か?
- これは本当に難しい質問
- レッドチームは1人の優秀な人を見つけるのは難しくない
- しかしチームにして同じバックグラウンドの人を集めてもうまくいかない
- 毎回おなじになってしまう
- レッドチームには様々な攻撃をシミュレーションする様々な人が必要
- 技術や認定ではなく
- どんな経験をしている人かが大事
- 結果が出てくるとブルーチームの検知が高くなる
- 仕事が少なくなる
- レッドチームには外部からもプレッシャーになる
- バーン・アウトしてしまう
- レッドチームとしてのミッションを明確に定めないといけない
- 侵入が目的ではなく観察が重要
- 技術的な目標を達成するのは最重要ではない
- どこで検出されたか、どうしてうまくいかなかったのかのインサイトを集めることが重要
- 勝ち負けの話ではない
- レッドチームで燃え尽きている人がたくさん出てきている
- カルチャーとして心理的安全性を提供する
- 新しい人が先輩をみて自分が一番できないと思わないようにフォローする
- どんなに環境が変わっても学習し続ける
- ノンストップで演習し続けるのは辞める
- ツールの開発などで息抜きをしていく
- むちゃくちゃな残業を積み重ねるとうまくいかない
- 短期的効果は持続的な仕事より重要ではない
まとめ
- レッドチームはブルーチームのスパークリングパートナー
- セキュリティの認知度アップのための活動
- 積極的にセキュリティを向上する活動をする
- 健全な状態を維持する
- 多様なチームを作る
感想
レッドチームをどう成功させるかという話ですが、レッドチームでなくても当てはまる部分が多い内容だと感じました。
チームの目的を正しく明確にして、社内でも適切に広報して取り組む必要がありますね。